8956. Вывести массив 4

 

Задан массив из n целых чисел. Выведите только его отрицательные элементы, изменив первоначальный порядок на противоположный.

 

Вход. Первая строка содержит число n (1 ≤ n ≤ 100). Во второй строке записаны n целых чисел, каждое из которых не превышает по модулю 100.

 

Выход. В первой строке выведите количество отрицательных элементов массива. Во второй строке выведите сами отрицательные элементы в обратном порядке. Если отрицательных элементов в массиве нет, то выведите ”NO”.

 

Пример входа 1

Пример выхода 1

7

-2 5 4 -3 7 -1 0

3

-1 -3 -2

 

 

Пример входа 2

Пример выхода 2

5

2 1 0 1 5

NO

 

 

РЕШЕНИЕ

массив

 

Анализ алгоритма

Читаем входную последовательность в массив. Подсчитываем количество отрицательных чисел. Если оно равно 0, то выводим “NO”. Иначе выводим количество отрицательных чисел и сами числа в обратном порядке.

 

Реализация алгоритма

Объявим массив для хранения последовательности.

 

int m[101];

 

Читаем входную последовательность в массив.

 

scanf("%d", &n);

for (i = 0; i < n; i++)

  scanf("%d", &m[i]);

 

В переменной cnt подсчитаем количество отрицательных чисел.

 

cnt = 0;

for (i = 0; i < n; i++)

  if (m[i] < 0) cnt++;

 

Если отрицательных чисел нет, то выводим “NO”.

 

if (cnt == 0)

  printf("NO\n");

else

{

 

Выводим количество отрицательных чисел.

 

  printf("%d\n", cnt);

 

Выводим отрицательные числа в обратном порядке.

 

  for (i = n - 1; i >= 0; i--)

    if (m[i] < 0) printf("%d ", m[i]);

  printf("\n");

}